Dieses Dokument spezifiziert die Erstellung und das Format von Trip-Kit-Dateien im AIP Browser DE.
Important
|
Diese neue Version ist noch in Arbeit und noch nicht vollständig! |
1. Definition
Ein Trip-Kit im Sinne dieses Dokuments ist eine Zusammenstellung von Resourcen (aus der AIP und evtl. zusätzlichen Quellen) für ein bestimmtes Flugvorhaben.
2. Resourcen
Resourcen sind ganze Seiten der AIP, Teile davon und zusätzliche, manuell hinzugefügte Informationen und Geodaten.
3. Anwendungsfälle
Ein Trip-Kit kann für verschiedene Anwendungsfälle dienen, was Konsequenzen sowohl für den Inhalt als auch die Art der Zusammenstellung hat.
3.1. Zusammenstellung von georeferenzierten Karten für die Darstellung auf einer Moving Map
Die georeferenzierten Anflugkarten können in der Kategorie charts/
gespeichert werden.
-
Eine darin enthaltene Datei mit dem Namen
charts_toc.json
beschreibt die verfügbaren Karten. -
Eine darin enthaltene Datei mit dem Namen
covered_charts_area.geojson
beschreibt die abgedeckte Fläche im GeoJSON Format.
3.2. Zusammenstellung von ganzen Seiten oder Teilen davon als chronologisches Dokument zur Beschreibung des Flugvorhabens
Die ganzen Seiten können in der Kategorie pages/
gespeichert werden.
-
Eine darin enthaltene Datei mit dem Namen
pages_toc.json
beschreibt die verfügbaren Seiten.
4. Art der Zusammenstellung
Der Container für den Austausch zwischen verschiedenen Geräten ist eine ZIP-Datei mit einem Inhaltsverzeichnis auf oberster Ebene. Die Struktur ist fest vorgegeben aber es brauchen nur die Teile davon exportiert zu werden, die auch benötigt werden. Wenn z.B. kein Bedarf an den ganzen Seiten besteht dann brauchen diese (pages/
) auch nicht exportiert zu werden. Ein Leser sollte auch so flexibel sein, dass er neue, bisher unbekannte Teile einfach ignoriert und dies nicht als Fehler betrachtet.
4.1. ZIP-Datei
4.1.1. Struktur der ZIP-Datei
toc.json charts/ charts_toc.json covered_charts_area.geojson EDKA Aachen-Merzbrueck 1-geo.webp ... pages/ pages_toc.json ...
4.1.2. Beispiel einer TOC-Datei (toc.json
)
{ "version": "1.0.0", "name": "Hahnweide to Aachen", "description": "A trip from Hahnweide to Aachen via Speyer and Koblenz", "creationIsoDateTime": "2023-08-23T10:11:29.683658Z" }
4.1.3. Beispiel einer charts TOC-Datei (charts_toc.json
)
{ "version": "1.0.0", "charts": [ { "name": "EDDF Frankfurt Main 2", "filePath": "charts/EDDF Frankfurt Main 2.tiff", "effectiveIsoDate": "2023-07-27", "modifIsoDate": "2021-08-26", "checksumAlgorithm": "SHA-256", "checksumHexValue": "18b0eda062f233fca00ccb417e26dd112e0cbd790d6968dcbed20eed8c8f6055", "invScale": 75000, "geoCorners": { "upperLeft": { "longitude": 8.48936170212766, "latitude": 50.08356164383562 }, "lowerLeft": { "longitude": 8.48936170212766, "latitude": 49.9990296803653 }, "lowerRight": { "longitude": 8.61968085106383, "latitude": 49.9990296803653 }, "upperRight": { "longitude": 8.61968085106383, "latitude": 50.08356164383562 } } }, { "name": "EDDK Koeln Bonn 2", "filePath": "charts/EDDK Koeln Bonn 2.tiff", "effectiveIsoDate": "2023-07-27", "modifIsoDate": "2022-03-10", "checksumAlgorithm": "SHA-256", "checksumHexValue": "fe9c5144480d7c5dd0502cd9d95001b8e82e36ba4f3bfa0e3fe9a1c777324710", "invScale": 50000, "geoCorners": { "upperLeft": { "longitude": 7.091990364348088, "latitude": 50.89359559103003 }, "lowerLeft": { "longitude": 7.091990364348088, "latitude": 50.8427023945268 }, "lowerRight": { "longitude": 7.180457693465824, "latitude": 50.8427023945268 }, "upperRight": { "longitude": 7.180457693465824, "latitude": 50.89359559103003 } } }, ... ] }
4.1.4. Beispiel einer pages TOC-Datei (pages_toc.json
)
{ "version": "1.0.0", "filePaths": [ "pages/Stuttgart EDDS.pdf", "pages/Herrenteich EDEH.pdf", "pages/Heppenheim EDEP.pdf", "pages/Wallduern EDEW.pdf", ... "pages/Niederstetten ETHN.pdf" ] }
4.1.5. Beispiele einer "covered charts area" Datei (covered_charts_area.geojson
)
Diese Datei ist eine standardkonforme Geo-JSON Datei, was z.B. über die Webseite geojson.io verifiziert werden kann. Als Features enthält diese Datei das abgedeckte Gebiet sowie die Outlines aller darin enthaltenen Charts. Als Properties sind in den Chart-Outlines auch noch einige Parameter des jeweiligen Aerodromes enthalten.
oder
oder
5. Verwaltung eines Trip-Kits
TODO:
Die Erzeugung wird derzeit über eine Konfigurationsdatei gesteuert. In der Zukunft soll das durch einen Eingabedialog in der Software ersetzt werden. Die Konfigurationsdatei ist ebenfalls eine JSON-Datei. Das abzudeckende Gebiet kann aus einzelnen Teilen zusammengesetzt werden. Derzeit stehen GeoRectangle
, GeoCircle
und GeoCorridor
zur Verfügung. Die einfachsten Gebiete sind ein jeweils einzelnes GeoRectangle
oder ein GeoCircle
. Komplexere Gebiete entstehen durch Addition mehrerer Einzelgebiete. Diese müssen auch nicht notwendigerweise zusammenhängend sein.
Der Parameter version
bestimmt die Formatversion dieser Datei und darf nicht verändert werden.
Das Ausgabeformat für die einzelnen Bilder kann über den Parameter imageFormat
festgelegt werden. Dabei stehen die Werte jpg
, png
, tiff
und webp
zur Verfügung. Fehlt der Parameter, dann wird webp
verwendet. Die TIFF-Version beinhaltet auch noch die Georeferenzierungsinformation und ist damit eigentlich ein Geo-TIFF. Bei den anderen Formaten muss diese Information aus den gegebenen 4 Eckpunkten entnommen werden. Des Weiteren enthält die Bildbeschreibung der TIFF-Version den Namen des jeweiligen Flugplatzes und dessen ICAO-Code.
5.1. Einfaches GeoRectangle
Beispiel
{ "version": "1.0.0", "name":"Flying in the Ländle", "description": "An area covering Baden-Württemberg", "charts": { "coveredArea": [ { "type": "GeoRectangle", "west": 7.49961623, "south": 47.53058632, "east": 10.49522706, "north": 49.79159732 } ], "minInvScale": 50000.0, "maxInvScale": 90000.0, "imageFormat": "webp" } }
5.2. Komplexes Multi-Geometrie Beispiel
{ "version": "1.0.0", "name": "Hahnweide to Aachen", "description": "A trip from Hahnweide to Aachen via Speyer and Koblenz", "charts": { "coveredArea": [ { "type": "GeoCircle", "center": { "longitude": 9.428503758629594, "latitude": 48.631650117670056 }, "radius": 50000.0 }, { "type": "GeoCorridor", "points": [ { "longitude": 9.428503758629594, "latitude": 48.631650117670056 }, { "longitude": 8.443524303116453, "latitude": 49.31244357731459 }, { "longitude": 7.639419518846692, "latitude": 50.33398675841019 }, { "longitude": 6.186308779144034, "latitude": 50.823171895761845 } ], "distance": 30000.0 }, { "type": "GeoCircle", "center": { "longitude": 6.186308779144034, "latitude": 50.823171895761845 }, "radius": 80000.0 }, { "type": "GeoRectangle", "west": 8.5, "south": 50.0, "east": 9.5, "north": 50.5 } ], "minInvScale": 50000.0, "maxInvScale": 90000.0, "imageFormat": "webp" } }